#ifndef UISEGMENTATION_H
#define UISEGMENTATION_H

typedef struct {
    int x;  // x-coordinate
    int y;  // y-coordinate
    int z;  // z-coordinate
    int v;  // seed value;
    int r;  // seed area;
} TumorSeed;

typedef struct AlgoParam {
    const unsigned short **pVolume;
    int iWidth;
    int iHeight;
    int iSlice;
    TumorSeed seed;
    unsigned char **pMask;
    int iStart;
    int iCount;
    const char * OutPutData;
} AlgoParam;

#ifdef ALGORITHMAPI_LIBRARY
#define ALGORITHMAPI_PORT __declspec(dllexport)
#else
#define ALGORITHMAPI_PORT __declspec(dllimport)
#endif

#ifdef __cplusplus
extern "C" {
#endif

ALGORITHMAPI_PORT int Algo_Segment(AlgoParam *param);
ALGORITHMAPI_PORT int Algo_Extract(AlgoParam *param);
ALGORITHMAPI_PORT int Algo_Predict(AlgoParam *param);

#ifdef __cplusplus
}
#endif

#endif // UISEGMENTATION_H

